import { envConfig } from './config/index'
export default {
  mqtt: {
    shanghai: {
      // 上海测试mqtt服务器
      host: envConfig.MQTT_SHANGHAI_HOST,   // 测试
      // 上海mqtt服务器 记得加上 mqtt://
      // host: 'mqtt://gateway.centurygenius.com',   // 正式版本，测试时记得改回来
      port: 1883,                 // 默认 MQTT 端口
      username: '',   // 可选，MQTT 用户名
      password: '',   // 可选，MQTT 密码
      // clientId: 'mqttx_004b0661',   // 可选，MQTT 客户端ID
      clientId: '',
      keepalive: 60,              // 可选，保持连接的时间，单位：秒
      reconnectPeriod: 1000,      // 可选，重连时间间隔，单位：毫秒
    },
    suzhou: {
      // host: 'mqtt://broker.emqx.io',   // MQTT 服务器地址，改为你的地址
      host: envConfig.MQTT_SUZHOU_HOST,   // MQTT 服务器地址，改为你的地址
      port: 1883,                 // 默认 MQTT 端口
      username: '',   // 可选，MQTT 用户名
      password: '',   // 可选，MQTT 密码
      // clientId: 'mqttx_004b0661',   // 可选，MQTT 客户端ID
      clientId: '',
      keepalive: 60,              // 可选，保持连接的时间，单位：秒
      reconnectPeriod: 1000,      // 可选，重连时间间隔，单位：毫秒
    }
  },
  redis: {
    client: {
      host: 'localhost',
      port: 6379,
      password: '',
      db: 0,
    },
  },
  // use for cookie sign key, should change to your own and keep security
  keys: '1715416543448_2739',
  koa: {
    port: 7001,
    globalPrefix: '/'
  },
  jwt: {
    secret: 'my-secret', // fs.readFileSync('xxxxx.key')
    sign: {
      // signOptions
      expiresIn: '1d', // https://github.com/vercel/ms
    },
    verify: {
      // verifyOptions
    },
    decode: {
      // decodeOptions
    }
  },
  typeorm: {
    dataSource: {
      default: {
        type: 'mysql',
        host: envConfig.DB_HOST,
        port: 3306,
        username: envConfig.DB_USERNAME,
        password: envConfig.DB_PASSWORD,
        database: envConfig.DB_DATABASE,
        // host: 'localhost',
        // port: 3306,
        // username: 'root',
        // password: 'root',
        // database: 'ruoyi_nodejs_open',
        synchronize: false,  // 如果第一次使用，不存在表，有同步的需求可以写 true，注意会丢数据
        logging: false, // 打印sql语句
        // 支持如下的扫描形式，为了兼容我们可以同时进行.js和.ts匹配，⬇️
        entities: ['**/entity/*.entity.ts'], // 测试环境
        // entities: ['./dist/proc/entity/*.js'], // 生产环境
        timezone: '+08:00', // 避免时间误差8小时
        dateStrings: true, // 时间字段返回字符串
        bigNumberStrings: false, // 避免大数字被截断转String类型
        // 生产环境建议添加连接池配置
        extra: {
          connectionLimit: 10,
          acquireTimeout: 30000
        },
        retryDelay: 3000, // 设置重试延迟时间（毫秒）
      }
    }
  },
  report: {
    crypto: {
      // AES-128-CBC 需要 32 个字符的 hex key（16 字节）
      key: envConfig.CRYPTO_KEY,
      // IV 需要 32 个字符的 hex（16 字节）
      // 这里的 IV 是 16 字节的随机数，实际使用中需要根据具体情况生成
      iv: envConfig.CRYPTO_IV,
    },
    crypto_sh: {
      key: envConfig.CRYPTO_SH_KEY,
      iv: envConfig.CRYPTO_SH_IV,
    }
  }
}
